package com.devunion.salon.client.rpc;

import com.devunion.salon.client.app.bean.ProductModel;
import com.devunion.salon.client.app.bean.ProductHistoryModel;
import com.devunion.salon.client.app.bean.search.ProductSearchPagingLoadConfig;
import com.devunion.salon.client.app.bean.search.ProductHistoryPaggingLoadConfig;
import com.extjs.gxt.ui.client.data.ListLoadResult;
import com.extjs.gxt.ui.client.data.PagingLoadResult;
import com.google.gwt.user.client.rpc.AsyncCallback;

public interface ProductServiceAsync {
    
    void saveProduct(ProductModel productModel, AsyncCallback<ProductModel> async);

    void findProductHistory(final ProductHistoryPaggingLoadConfig config, AsyncCallback<PagingLoadResult<ProductHistoryModel>> async);

    void deleteProduct(Long id, AsyncCallback async);

    void findProducts(ProductSearchPagingLoadConfig config, AsyncCallback<PagingLoadResult<ProductModel>> async);
}
